1. Technical Field
The present invention relates generally to an improved process for configuring operating systems for server-managed computer systems. Still more particularly, the present invention relates to a method and apparatus for creating diverse Machine Classes which can be used as templates to create a fully configured, bootable operating system for an instance of a particular computing device.
2. Description of Related Art
In the early 1980s, as the first Personal Computers (PCs) came onto the market, people in the Information Systems (IS) industry thought that PCs might replace mainframe computers and cut operating costs drastically. Over the years, as Personal Computers gained more functionality and better user interfaces, end-users improved their productivity. While enterprise data and legacy applications were still placed on the more reliable mainframe platforms, there was more and more need for distributed access to these resources.
The goal of network computing is to provide functions for accessing legacy data and applications while reducing the overall costs of operating an enterprise-wide environment. This goal can be achieved only by the implementation of standards on all the platforms involved, such as TCP/IP for the networking protocol and 100 percent pure Java applications. This will lead to truly portable applications and solutions where in the network computing environment, all devices are able to communicate with one another easily. The advantage of network computing technologies is that they let you choose from a wider scope of works.
Because different users have varying application needs, different technologies have to be employed to serve those needs. Various network client systems provide a better user fit because of their attributes, such as:
Non-Programmable Terminals (NPTs) are connected to host-based applications systems where the user interface is managed and controlled by the central processing system;
Network Computers (NCs) offer greater versatility than NPTs because of their built-in capabilities, access to Java and Windows-based applications, and a browser;
Managed PCs offer the user the ability to run new network-computing operating systems;
NetPCs and Managed PCs are very similar; however, NetPCs have sealed cases and are not upgradeable, while Managed PCs may have locked covers and can be upgraded; and
Traditional PCs such as desktop and laptop PCs are designed to offer highly sophisticated end-user environments. They offer a full-function set of applications and access to data from wherever they are being operated, even when there is no network connection available.
Network computing can be described as the use of different open technologies providing connectivity, ease-of-use, application functionality, information access, scalability and systems management across widely versed types of networks. One of the main intentions of network computing is the any-to-any type of connectivity between applications without having to worry about the hardware or software platforms being used. By making use of open standard technologies, network computing provides many benefits of the client/server paradigm while avoiding its numerous shortcomings. Typically, the network computing approach provides a three-tier solution, although not all are three-tier. This three-tier environment consists of:
Client workstations handle the user interface and a minimal set of application functions.
Web server or Mid level. The major application functions, some of the data processing and updating are performed at this level.
A corporate central processor. Corporate data accessing and legacy processing are performed here.
The client workstations play an important role in a network computing environment because they provide the end user with an overall view of the complete solution.
Remote boot is the process of loading an operating system onto a workstation from a location that is remote to the workstation. The RIPL protocol was co-developed by 3Com, Microsoft and IBM. It is used today with the IBM OS/2 Warp Server, DEC Pathworks, and Windows NT. Two other commonly used remote boot protocols are a Novell RPL (Remote Program Load) and a BOOT-P, an IEEE standard used with UNIX and TCP/IP networks (and DHCP (Dynamic Host Configuration Protocol), a closely related protocol).
Remote boot is achieved using a combination of hardware and software. The requesting device, called the requester or workstation, starts up by asking the loading device to send it a bootstrap program. The loading device is another computer that has a hard disk and is called the remote boot server or boot server. The boot server uses a boot service program to send the bootstrap program to the workstation. Once the workstation receives the bootstrap program, it is then equipped to request an operating system, which in turn can request and use application programs. The software implementations differ between vendors but, theoretically, they all perform similar functions and go through a similar process.
The present invention provides a system for creating server-managed configuration information for computing devices. The configuration information is composed of individual configuration components. The configuration components can be grouped for convenience into templates called machine classes, which can be used to manage a set of similar machines (e.g., a specific model of a computing device). Configuration components and machine classes can be stored permanently in a database. Machine classes are instantiated with machine-specific information such as network addresses and configuration information for peripherals (e.g., video monitors and printers) to produce fully configured operating systems for a computing device. Software (e.g., device drivers) and configuration information (e.g., registry entries) are installed based on the machine class selected. Individual configuration components (i.e. network adapters, printers) can be added or overridden when the machine instance is created. The machine instance can be customized with additional configuration information, such as its network address(es), machine name and video resolution (pixel depth). The machine instance can be used either to boot a device remotely (e.g., a network computer or diskless machine) or to install the operating system (and related drivers) locally on the computing device.